// 该文件用于创建整个应用的路由器
import VueRouter from "vue-router";
import About from "@/pages/About";
import Home from "@/pages/Home";
import News from "@/pages/News";
import Message from "@/pages/Message";
import Detail from "@/pages/Detail";
// 创建一个路由器
 const router = new VueRouter({
    routes:[
        {
            name:'guanyu',
            path:'/about',
            component:About,
            meta:{title:'关于'}

        },
        {
            name:'zheye',
            path:'/home',
            component:Home,
            meta:{title:'主页'},
            //二级录用里不用在添加/
            children:[
                {
                    name:'xinwen',
                    path:'news',
                    component:News,
                    //meta 路由元，转门让程序员放东西
                    meta:{isAuth:true,title:'新闻'},
                    //单独享用守卫，独享路由守卫，只有前置没有后置
                    beforeEnter:(to, from, next) => {
                        if(to.meta.isAuth){
                            if(localStorage.getItem('school')==='gtguigu'){
                                  next()
                                 }else {
                                     alert('名不对，无权限查看')
                                        }
                                }else {
                                next()
                                 }
                        }

                },
                {
                    name:'xiaoxi',
                    path:'message',
                    component:Message,
                    //meta 路由元，转门让程序员放东西
                    meta:{isAuth:true,title: '消息'},

                    children:[
                        {
                            name:'xiangqing',
                            //  占位params传参
                            path:'detail/:id/:title',
                            component:Detail,
                            meta:{title:'详情'},
                        //props的第一种写法，值为对象，传递的是死数据
                        //该对象中的所有key-value都会以props的形式传给Detail组件
                        //     props:{a:1,b:'hello'}

                            //第二种写法，若布尔值为真，就会把该路由组件收到的所有params参数，以props的形式传给Detail组件
                            // props:true,

                        //    props的第三种写法,值为函数
                            props($route){
                                return {id:$route.params.id,title:$route.params.title}
                            }

                        }
                    ]
                }
            ]
        }
    ]
})
//全局前置路由守卫，在每一次路由切换之前调用 ，一运行就会有一次
//to :目标路由，form：来自于那，
// router.beforeEach((to, from, next)=>{
//
//     // next()放行
//     // if(to.name === 'xinwen'|| to.name === 'xiaoxi')或者这样写
//     // if(to.meta.isAuth)//判断是否需要权限
//     if(to.path === '/home/news' || to.path === '/home/message'){
//         if(localStorage.getItem('school')==='gtguigu'){
//             next()
//         }else {
//             alert('名不对，无权限查看')
//         }
//     }else {
//         next()
//     }
// })

//全局后置路由守卫，在每一次路由切换之后调用 ，初始化的时候被调用
router.afterEach((to, from)=>{
// 标题切换，切换之后改标题
    document.title = to.meta.title || '硅谷系统'
})

export default router